package com.ajavaer.framework.pay.response;

import com.ajavaer.framework.common.tools.StringTools;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class WeixinPayResponse {
    /**
     * 返回状态码
     * SUCCESS/FAIL 此字段是通信标识，非交易标识，交易是否成功需要查看trade_state来判断
     */
    private String return_code;
    /**
     * 返回信息
     * 当return_code为FAIL时返回信息为错误原因 ，例如 签名失败 参数格式校验错误
     */
    private String return_msg;
    /**
     * 公众账号ID,小程序ID
     */
    private String appid;
    /**
     * 子商户号
     */
    private String sub_mch_id;
    /**
     * 子商户公众账号ID
     */
    private String sub_appid;
    /**
     * 商户号
     */
    private String mch_id;
    /**
     * 随机字符串
     */
    private String nonce_str;
    /**
     * 签名
     */
    private String sign;
    /**
     * 业务结果
     */
    private String result_code;
    /**
     * 错误代码
     */
    private String err_code;
    /**
     * 错误代码描述
     */
    private String err_code_des;


    /**
     * 请求成功
     *
     * @return
     */
    public Boolean requestSuccess() {
        return StringTools.isNotBlank(return_code) && "SUCCESS".equalsIgnoreCase(return_code);
    }

    /**
     * 业务成功
     *
     * @return
     */
    public Boolean success() {
        return StringTools.isNotBlank(result_code) && "SUCCESS".equalsIgnoreCase(result_code);
    }


    public String getReturn_code() {
        return return_code;
    }

    public void setReturn_code(String return_code) {
        this.return_code = return_code;
    }

    public String getReturn_msg() {
        return return_msg;
    }

    public void setReturn_msg(String return_msg) {
        this.return_msg = return_msg;
    }

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getMch_id() {
        return mch_id;
    }

    public void setMch_id(String mch_id) {
        this.mch_id = mch_id;
    }

    public String getNonce_str() {
        return nonce_str;
    }

    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getResult_code() {
        return result_code;
    }

    public void setResult_code(String result_code) {
        this.result_code = result_code;
    }

    public String getErr_code() {
        return err_code;
    }

    public void setErr_code(String err_code) {
        this.err_code = err_code;
    }

    public String getErr_code_des() {
        return err_code_des;
    }

    public String getSub_mch_id() {
        return sub_mch_id;
    }

    public void setSub_mch_id(String sub_mch_id) {
        this.sub_mch_id = sub_mch_id;
    }

    public String getSub_appid() {
        return sub_appid;
    }

    public void setSub_appid(String sub_appid) {
        this.sub_appid = sub_appid;
    }

    public void setErr_code_des(String err_code_des) {

        this.err_code_des = err_code_des;
    }

}
